﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEditor;
using YooAsset.Editor;

public static class ShaderVariantCollectionHelper
{
	public static void ClearCurrentShaderVariantCollection()
	{
		EditorTools.InvokeNonPublicStaticMethod(typeof(ShaderUtil), "ClearCurrentShaderVariantCollection");
	}
	public static void SaveCurrentShaderVariantCollection(string savePath)
	{
		EditorTools.InvokeNonPublicStaticMethod(typeof(ShaderUtil), "SaveCurrentShaderVariantCollection", savePath);
	}
	public static int GetCurrentShaderVariantCollectionShaderCount()
	{
		return (int)EditorTools.InvokeNonPublicStaticMethod(typeof(ShaderUtil), "GetCurrentShaderVariantCollectionShaderCount");
	}
	public static int GetCurrentShaderVariantCollectionVariantCount()
	{
		return (int)EditorTools.InvokeNonPublicStaticMethod(typeof(ShaderUtil), "GetCurrentShaderVariantCollectionVariantCount");
	}

	/// <summary>
	/// 获取着色器的变种总数量
	/// </summary>
	public static string GetShaderVariantCount(string assetPath)
	{
		Shader shader = AssetDatabase.LoadAssetAtPath<Shader>(assetPath);
		var variantCount = EditorTools.InvokeNonPublicStaticMethod(typeof(ShaderUtil), "GetVariantCount", shader, true);
		return variantCount.ToString();
	}
}